home *** CD-ROM | disk | FTP | other *** search
- //
- // MiscPathField.h -- a MiscClipTextField subclass for displaying long
- // pathnames
- // Written and Copyright (c) 1995 by Balazs Pataki.
- // Version 1.0. All rights reserved.
- //
- // This notice may not be removed from this source code.
- //
- // This object is included in the MiscKit by permission from the author
- // and its use is governed by the MiscKit license, found in the file
- // "LICENSE.rtf" in the MiscKit distribution. Please refer to that file
- // for a list of all applicable permissions and restrictions.
- //
-
- #import <appkit/appkit.h>
- #import <misckit/MiscString.h>
- #import <objc/objc-runtime.h>
- #import "MiscPathField.h"
- #import "MiscClipTextFieldCell.h"
-
-
- #define CLASS_NAME "MiscPathField"
- #define CLASS_VERSION 1
-
-
-
- /*
- ********************************
- * *
- * MiscPathField *
- * *
- ********************************
- */
-
- @implementation MiscPathField
-
- + initialize
- // Set class version
- {
- if (self == objc_lookUpClass(CLASS_NAME)) {
- [self setVersion:CLASS_VERSION];
- }
- return self;
- }
-
- - initFrame:(const NXRect *)rect
- // Initializes a newly allocated MiscPathField for clipping its string value
- // using '/' (slash) as clipping delimiter and sets clipping to happen on the
- // left
- {
- [super initFrame:rect];
-
- [self setClipDelimiters:"/"];
- [self setClipOnRight:NO];
- [[self cell] setDelegate:self];
- shouldUseTilde = YES;
-
- return self;
- }
-
- - stringWillBeClipped:theString
- {
- if ( shouldUseTilde )
- [theString replaceHomeWithTilde];
-
- return self;
- }
-
-
- - setReplaceHomeWithTilde:(BOOL) flag
- // If flag is YES and the current string value is a user path, then replaces
- // the home part of the path with a '~' (tilde)
- {
- shouldUseTilde = flag;
- //[self setStringValue:[self fullStringValue]];
-
- return self;
- }
-
- - (BOOL)doesReplacesHomeWithTilde
- {
- return shouldUseTilde;
- }
-
- - write:(NXTypedStream *)stream
- {
- [super write:stream];
-
- NXWriteType(stream, @encode(BOOL), &shouldUseTilde);
-
- return self;
- }
-
-
- - read:(NXTypedStream *)stream
- {
- [super read:stream];
-
- NXReadType(stream, @encode(BOOL), &shouldUseTilde);
-
- return self;
- }
-
- - awake
- {
- [[self cell] setDelegate:self];
- return self;
- }
-
-
- @end
-
-
-
- @implementation MiscPathField(IBStuff)
-
- - (const char *)getInspectorClassName
- {
- return "MiscPathFieldInspector";
- }
-
- @end
-